The gateway was positioned so that Elayne seemed to be riding out of a hole in the wall against the street, into a square marked out for safety by sand-filled wine barrels standing on the paving stones. Oddly, she could not feel a single woman channeling anywhere in the palace, though it housed more than a hundred and fifty with the ability. Some would be stationed on the city’s outer walls, of course, too far for her to sense anything short of a linked circle, and a few would be out of the city altogether, yet someone in the palace was almost always using saidar, whether to try forcing one of the captive sul’dam to admit that she really could see weaves of the One Power or simply to smooth the wrinkles from a shawl without heating an iron. Not this morning, though. Windfinder arrogance often matched the worst shown by any Aes Sedai, yet even that must be quashed by what they sensed. Elayne thought that if she climbed to a high window, she must be able to see the weaves of that great beacon, hundreds of leagues distant as they were. She felt like an ant that had just become aware of mountains, an ant comparing the Spine of the World to the hills it had always held in awe. Yes, even the Windfinders must be walking small in the face of that.
On the eastern side of the palace and fronted on north and south by two-story-high stables of pure white stone, the Queen’s Stableyard traditionally was given over to the Queen’s personal horses and carriages, and she had hesitated over using it before the Lion Throne was acknowledged hers. The steps that led to the throne were as delicate as any court dance, and if the dance sometimes came to resemble a tavern brawl, you still had to make your steps with grace and precision in order to gain your goal. Claiming the perquisites before being confirmed had cost some women their chance to rule. In the end, she had decided it was not a transgression that would make her seem over-proud. Besides, the Queen’s Stableyard was relatively small and had no other use. There were fewer people to keep away from an opening gateway here. In fact, when she entered it, the stone-paved yard was empty apart from a single red-coated groom standing in one of the arched stable doorways, but he turned to give a shout inside, and dozens more came spilling out as she guided Fireheart clear of the marked-off square. After all, she might have returned with an entourage of powerful lords and ladies, or perhaps they just hoped she had.
Caseille brought the Guardswomen through the gateway, and ordered most to dismount and see to their animals. She and half a dozen more remained in their saddles, keeping watch over the heads of the people afoot. Even here, she would not leave Elayne unguarded. Particularly here, where she faced more danger than in any manor she had visited. The Matherin men milled about, getting in the way of grooms and Guards while gaping at the white stone balconies and colonnades that overlooked the yard and the spires and golden domes visible beyond. The cold seemed less here than in the mountains—refusing to let it touch her, as far as she could at present, did not make her totally unaware—but men and women and horses all still breathed faint plumes of mist. The odor of horse dung seemed strong, too, after the clean air of the mountains. A hot bath in front of a roaring fire would be welcome. Afterward, she would have to plunge back into the business of securing the throne, but right now a long soak would be just the thing.
A pair of grooms ran to Fireheart. One took his bridle with a hurried curtsy for Elayne, more concerned with seeing that the tall gelding made no bother while Elayne dismounted than with making courtesies herself, and another who made his bow and remained bent with his hands making a stirrup for Elayne. Neither gave more than a glance at the view of a snow-covered mountain meadow where they would normally see a stone wall. The stable-workers were accustomed to gateways by now. She had heard that they garnered drinks in the taverns by boasting of how often they saw the Power used and the things they supposedly had seen done with it. Elayne could imagine what those tales sounded like by the time they reached Arymilla. She rather enjoyed the thought of Arymilla chewing her fingernails.
As she set foot on the paving stones, a cluster of Guardswomen appeared around her, in crimson hats with white plumes lying flat on the broad brims, and lace-edged crimson sashes, embroidered with the White Lion, that slanted across their bright breastplates. Not until then did Caseille take the remainder of Elayne’s escort to the stable. Their replacements were just as wary, eyes watching every direction, hands hovering near their sword hilts, except for Deni, a wide, placid-faced woman who carried a long brass-studded cudgel. They were only nine in number—Only nine, Elayne thought bitterly. I need only nine bodyguards in the Royal Palace itself!—yet every one who carried a sword was expert. Women who followed the “trade of the sword,” as Caseille called it, had to be good, or else sooner or later they were cut down by some fellow whose only advantage was strength enough to batter her down. Deni possessed no facility with a sword at all, but the few men who had tested her cudgel regretted doing so. Despite her bulk, Deni was very quick, and she had no concept of fighting fair, or of practice, for that matter.
Rasoria, the stocky under-lieutenant in charge, seemed relieved when the grooms led Fireheart off. If Elayne’s bodyguard had their way, no one except themselves would have been allowed within arm’s reach. Well, maybe they were not quite that bad, but they looked with suspicion at almost everyone except Birgitte and Aviendha.  Elayne had not protested, however over-zealous they might be. One experience of drugged wine was more than enough, even when she knew she would live at least long enough to bear her child. But it was neither the Guardswomen’s mistrust nor the need for it that tightened her mouth. It was Birgitte, weaving her way through the crowded stableyard, but not toward her.
Aviendha was last to appear out of the gateway, of course, after she was sure that everyone was through, and before she let the gateway wink out of existence, Elayne started in her direction, striding off so suddenly that her escort had to leap to maintain their guarding ring around her. As quickly as she moved, though, Birgitte, with her thick golden braid hanging to her waist, was there first, helping Aviendha down and handing the gray mare over to a long-faced groom who seemed almost as leggy as Siswai. Aviendha always had more difficulty getting off a horse than getting on, but Birgitte had more than assistance in mind. Elayne and her escort arrived just in time to hear the woman say to Aviendha in a low, hurried voice, “Did she drink her goat’s milk? Did she get enough sleep? She feels . . . ” Her voice trailed off at the end, and she drew a deep breath before turning to face Elayne, outwardly calm, and unsurprised to find her right there. The bond did work both ways.
Birgitte was not a big woman, though she stood taller than Elayne in her heeled boots, as tall as Aviendha, but she usually had a presence that was only heightened by the uniform of the Captain-General of the Queen’s Guards, a short red coat with a high white collar worn over baggy blue trousers tucked into gleaming black boots, four golden knots on her left shoulder and four bands of gold on each white cuff. After all, she was Birgitte Silverbow, a hero out of legend. She remained wary of trying to live up to those legends; she claimed that the stories were grossly inflated where they were not complete fabrications. Yet she was still the same woman who had done every one of the things that formed the heart of those legends and more besides. Now, despite her apparent composure, unease tinged the concern for Elayne that flowed through the bond along with her headache and her sullen stomach. She knew very well that Elayne hated for them to check on her behind her back. That was not the whole reason for Elayne’s irritation, but the bond let Birgitte know just how upset she was.
Aviendha, calmly unwrapping her shawl from around her head and draping it over her shoulders, attempted the gaze of a woman who had done nothing wrong and certainly was not involved with anyone else who had done anything wrong. She might have managed it if she had not widened her eyes for an added touch of innocence. Birgitte was a bad influence on her in some ways.
“I drank the goat’s milk,” Elayne said in a level voice, all too conscious of the Guardswomen ringing the three of them. Facing outward, eyes scanning the yard and the balconies and the rooftops, nearly every one was certainly listening. “I got enough sleep. Is there anything else you want to ask me?” Aviendha’s cheeks colored faintly.
“I think I have all the answers I need for the moment,” Birgitte replied without a hint of the blush Elayne had been hoping for. The woman knew she was tired, knew she had to be lying about the sleep.
The bond was decidedly inconvenient at times.  None of the other Aes Sedai she had spoken to about the bond had mentioned anything of the kind, but she and Birgitte all too often mirrored one another, physically and emotionally. The last presented real problems when her moods were on a seesaw. Sometimes she managed to shrug it off, or fight it off, but today she knew she was going to have to suffer until Birgitte was Healed. She thought the mirroring must occur because they were both women. No one had heard of anyone bonding another woman before. Few had heard of it now, to tell the truth, and some of them seemed to believe it could not be true. A Warder was male as surely as a bull was male. Everyone knew that, and not many stopped to think that anything that “everyone knew” deserved close examination.
Being caught in a lie, when she was trying to follow Egwene’s dictate about living as if she had already taken the Three Oaths, made Elayne defensive, and that made her blunt. “Is Dyelin back?”
“No,” Birgitte said just as bluntly, and Elayne sighed. Dyelin had left the city days before Arymilla’s army appeared, taking Reanne Corly with her to make gateways and speed her travel, and a great deal depended on Dyelin’s return. On what news she brought back. On whether she brought anything besides news.
Choosing who would be Queen of Andor was quite simple, boiled down to essentials. There were over four hundred Houses in the realm, but only nineteen strong enough that others would follow where they led. Usually, all nineteen stood behind the Daughter-Heir, or most of them, unless she was plainly incompetent. House Mantear had lost the throne to Trakand when Mordrellen died only because Tigraine, the Daughter-Heir, had vanished and Mantear had begun running heavily to boy children. And because Morgase Trakand had gathered thirteen Houses in her support. Only ten of the nineteen were necessary to ascend the throne, by law and custom. Even claimants who still thought they should have the throne themselves usually fell in with the rest, or at least fell silent and gave up their pursuit, once another woman had ten Houses at her back.
Things had been bad enough when she had three declared rivals, but now Naean and Elenia were united behind Arymilla Marne, of all people, the least likely of the three to have succeeded, and that meant she had two Houses—two large enough to count; Matherin and those eighteen others she had visited were too small—her own Trakand and Dyelin’s Taravin, to face six. Oh, Dyelin insisted that Carand, Coelan and Renshar would come to Elayne, and Norwelyn and Pendar and Traemane besides, but the first three wanted Dyelin herself on the throne, and the last three seemed to have gone into hibernation. Dyelin was firm in her loyalty, though, and tireless on Elayne’s behalf. She persisted in her belief that some of the Houses that were keeping silent could be convinced to support Elayne. Of course, Elayne could not approach them herself, but Dyelin could. And now the situation verged on desperate. Six Houses supporting Arymilla, and only a fool would think she had not sent feelers out toward the others. Or that some might listen just because she did have six already.
Despite the fact that Caseille and her Guards had vacated the courtyard, Elayne and the others had to thread their way across the paving stones though a crowd. The men from Matherin were finally down off their horses, but they were still moiling about, dropping their halberds and picking them up only to drop them again, trying to unload their packhorse there in the stableyard. One of the boys was chasing a chicken that somehow had gotten loose and was scuttling between the horses’ legs, while one of the wrinkled old men shouted encouragement, though whether for the boy or the chicken was unclear. A leather-faced bannerman with the merest fringe of white hair remaining, in a faded red coat that strained across his belly, was trying to establish order with the help of an only slightly younger Guardsman, both of them likely returned from their pensions, as a good many had, but another of the boys seemed about to lead his shaggy horse into the palace itself, and Birgitte had to order him out of the way before Elayne could enter. The boy, a fuzz-cheeked lad who could not have been above fourteen, gaped at Birgitte as widely as he had at the palace. She was certainly more picturesque in her uniform than the Daughter-Heir in a riding dress, and he had already seen the Daughter-Heir. Rasoria gave him a shove back toward the old bannerman, shaking her head.
“I don’t flaming know what I can do with them,” Birgitte grumbled as a maid liveried in red-and-white took Elayne’s cloak and gloves in the small entry hall. Small in terms of the Royal Palace. With gilded stand-lamps flickering between narrow, fluted white columns, it was half again the size of Matherin’s main entry hall, though the ceiling was not so high. Another maid with the White Lion on the left breast of her dress, a girl not that much older than the boy who had tried to bring his horse inside, offered a ropework silver tray with tall cups of steaming spiced wine before simultaneous frowns from Aviendha and Birgitte made her shy back. “The flaming boys fall asleep if they’re put on guard,” Birgitte went on, scowling at the retreating maid. “The old men stay awake, but half can’t remember what they’re flaming supposed to do if they see somebody trying to scale the bloody wall, and the other half together couldn’t fight off six shepherds with a dog.” Aviendha raised an eyebrow at Elayne and nodded.
“They aren’t here to fight,” Elayne reminded them as they started down a blue-tiled corridor lined with mirrored stand-lamps and inlaid chests, Birgitte and Aviendha on either side of her and the Guardswomen spreading out a few paces ahead of them and behind. Light, she thought, I wouldn’t have taken the wine! Her head pounded in rhythm with Birgitte’s, and she touched her temple, wondering whether she should order her Warder to go find Healing immediately.
Birgitte had other ideas, though. She eyed Rasoria and the others in front, then looked over her shoulder and motioned those following to fall back a little more. That was strange. She had handpicked every last woman in the Guards, and she trusted them. Even so, when she spoke it was in a hurried near-whisper, bending her head close to Elayne. “Something happened just before you returned. I was asking Sumeko if she’d Heal me before you got back, and she suddenly fell over in a faint. Her eyes just rolled up in her head, and down she went. It isn’t only her.  Not one of them could spit if she had to. You were back before I could find a sister, but I suspect they’d give me the fish eye, too. They’ll tell you, though.”
The palace required the population of a large village to keep running, and servants had begun to appear, liveried men and women scurrying along the corridors, flattening themselves against the walls or ducking into crossing hallways to make room for Elayne’s escort, so she explained the little she knew in as soft a voice and as few words as possible. Some rumors she did not mind reaching the streets, and inevitably Arymilla, but tales of Rand could be as bad as tales of the Forsaken by the time they were twisted through a few retellings. Worse, in a way. No one would believe the Forsaken were trying to put her on the throne as a puppet. “In any event,” she finished, “it’s nothing to do with us here.”
She thought she sounded very convincing, very cool and detached, but Aviendha reached out to squeeze her hand, for an Aiel as much as a comforting hug with so many people to see, and Birgitte’s sympathy flooded through the bond. It was more than commiseration; it was the shared feeling of a woman who had already suffered the loss she herself feared and more. Gaidal Cain was lost to Birgitte as surely as if he were dead, and on top of that, her memories of her past lives were fading. She remembered almost nothing clearly before the founding of the White Tower, and not all of that. Some nights, the fear that Gaidal would fade from her memory, too, that she would lose any remembrance of actually having known and loved him, left her unable to sleep until she drank as much brandy as she could hold. That was a poor solution, and Elayne wished she could offer a better, yet she knew her own memories of Rand would not die until she did, and she could not imagine the horror of knowing those memories might leave her. Still, she hoped someone Healed Birgitte’s morning-after head soon, before her own split open like an over-ripe melon. Her ability with Healing fell short of the task, and Aviendha’s was no stronger.
Despite the emotion she could feel in Birgitte, the other woman kept her face smooth and unconcerned. “The Forsaken,” she muttered dryly. And softly. That was not a name to bandy about. “Well, as long as it has nothing to do with us, we’re bloody all right.” A grunt that might have been a laugh gave her the lie. But then, although Birgitte said she had never been a soldier before, she had a soldier’s view. Long odds were usually the only odds you could find, but you still had to get the job done. “I wonder what they think of it?” she added, nodding toward the four Aes Sedai who had just stepped out of a crossing corridor down the hallway.
Vandene, Merilille, Sareitha and Careane had their heads together as they walked, or rather, the last three were clustered around Vandene, leaning toward her and talking with urgent gestures that made the fringes on their shawls sway. Vandene glided along slowly as if she were alone, paying no heed. She had always been slender, but her dark green dress, embroidered with flowers on the sleeves and shoulders, hung on her as though made for a stouter woman, and the white hair gathered at the nape of her neck seemed in need of a brush. Her expression was bleak, but that might have had nothing to do with whatever the other sisters were saying. She had been joyless ever since her sister’s murder. Elayne would have wagered that dress had belonged to Adeleas. Since the murder, Vandene wore her sister’s clothes more often than her own. Not that that accounted for the fit. The two women had been of a size, but Vandene’s appetite for food had died with her sister. Her taste for most things seemed to have died then.
Sareitha, a Brown whose dark square face was not yet touched with agelessness, saw Elayne just then, and put a hand on Vandene’s arm as if to draw her up the corridor. Vandene brushed the Tairen woman’s hand away and glided on with the merest glance at Elayne, disappearing on along the hallway they had come out of. Two women in novice white, who had been following the others at a respectful distance, offered quick curtsies to the remaining sisters and hastened after Vandene. Merilille, a tiny woman in dark gray that made her Cairhienin paleness seem like ivory, stared as if she might follow. Careane adjusted her green-fringed shawl on shoulders wider than those of many men and exchanged quiet words with Sareitha. The pair of them turned to meet Elayne as she approached, making her curtsies almost as deep as the novices had given them. Merilille noticed the Guardswomen and blinked, then noticed Elayne and gave a start. Her curtsy matched the novices’.
Merilille had worn the shawl for over a hundred years, Careane for more than fifty, and even Sareitha had worn it longer than Elayne Trakand, but standing among Aes Sedai went with strength in the Power, and none of these three was more than middling strong among sisters. In Aes Sedai eyes, increased strength gave, if not increased wisdom, at least increased weight to your opinions. With a sufficient gap, those opinions became commands. Sometimes, Elayne thought the Kin’s way was better.
“I don’t know what it is,” she said before any of the other Aes Sedai could speak, “but there is nothing we can do about it, so we might as well quit worrying. We have enough right in front of us without fretting over things we can’t affect.”
Rasoria half-turned her head, frowning and plainly wondering what she had missed, but the words smoothed the anxiety from Sareitha’s dark eyes. Perhaps not from the rest of her, since her hands moved as if she wanted to smooth her brown skirts, yet she was willing to follow the lead of a sister who stood as high as Elayne. Sometimes, there were advantages to standing high enough that you could quell objections with a sentence. Careane had already regained serenity, if she had ever lost it. It sat easily on her, though she looked more like a wagon driver than an Aes Sedai despite her beryl-slashed silks and smooth, ageless coppery face. But then, Greens usually were made of tougher stuff than Browns. Merilille did not look at all serene. Wide eyes and half-parted lips gave her the appearance of startlement. That was usual for her, though.
Elayne continued along the hallway, hoping they would go about their business, but Merilille fell in beside Birgitte. The Gray should have taken primacy among the three, but she had developed a tendency to wait for someone to tell her what to do, and she shifted over without a word when Sareitha politely asked Birgitte to give her room. The sisters were unfailingly courteous to Elayne’s Warder when she was acting as Captain-General. It was Birgitte as Warder they tried to ignore. Aviendha received no such civility from Careane, who elbowed in between her and Elayne. Anyone not trained in the White Tower was a wilder by definition, and Careane despised wilders. Aviendha pursed her lips though she did not draw her belt knife or even suggest that she might, for which Elayne was grateful. Her first-sister could be . . . precipitate, at times. On second thought, she would have forgiven a little hastiness from Aviendha right then. Custom forbade rudeness toward another Aes Sedai under any circumstances, but Aviendha could have growled threats and waved her knife to her heart’s content. That might have been enough to make the threesome leave, even if in a tizzy. Careane did not seem to notice the cool green gaze marking her.
“I told Merilille and Sareitha it was nothing we could do anything about,” she said calmly. “But shouldn’t we be ready to flee if it comes closer? There’s no shame flying from that. Even linked, we would be moths fighting a forest fire. Vandene wouldn’t bother to listen.”
“We really should make some sort of preparations, Elayne,” Sareitha murmured absently, as if making lists in her head. “It’s when you don’t make plans that you wish you had. There are a number of volumes in the library here that mustn’t be left behind. I believe several can’t be found in the Tower library.”
“Yes.” Merilille’s voice was breathless, and as anxious as her large dark eyes. “Yes, we really should be ready to go. Perhaps . . . Perhaps we should not wait. Surely going from necessity would not violate our agreement. I am sure it would not.” Only Birgitte as much as glanced at her, but she flinched.
“If we do go,” Careane said as if Merilille had not spoken, “we’ll have to take all of the Kin with us. Allow them to scatter, and the Light only knows what they’ll do or when we will ever catch them again, especially now that some have learned to Travel.” There was no bitterness in her voice, though only Elayne among the sisters in the palace could Travel. It seemed to make a difference to Careane that the Kinswomen had begun in the White Tower, even if most had been put out and a few had run away. She had identified no fewer than four of them herself, including one runaway. At least they were not wilders.
Sareitha’s mouth tightened, though. It weighed on her that several Kinswomen could weave gateways, and she had very different notions of the Kin. Normally, she limited her objections to the occasional frown or disparaging grimace, since Elayne had made her own views clear, but the stress of the morning seemed to have loosened her tongue. “We do indeed need to take them with us,” she said in a cutting tone, “else they’ll all be claiming to be Aes Sedai as soon as they’re out of our sight. Any woman who maintains she was put out of the Tower over three hundred years ago will claim anything! They need to be kept under a close watch, if you ask me, instead of going about as they please, most especially those who can Travel. They may have gone where you told them and come back so far, Elayne, but how long before one of them doesn’t return? Mark my words, once one of them escapes, others will follow, and we will have a mess on our hands we’ll never clean up.”
“There is no reason for us to go anywhere,” Elayne said firmly, as much for the Guards as for the sisters. That distant beacon was still in the same spot where she had first sensed it, and if it did move, the chance seemed small that it would move toward Caemlyn, much less actually come there, but a rumor that Aes Sedai were planning flight might be enough to engender a stampede, mobs clawing to reach the gates ahead of whatever could frighten Aes Sedai. An army sacking the city would not kill as many. And these three chattered away as if there were no one to hear but the wall hangings! There was some excuse for Merilille, but not the others. “We will remain here, as the Amyrlin Seat has commanded, until the Amyrlin commands otherwise. The Kinswomen will continue to receive every courtesy until they are welcomed back into the Tower, and that is the Amyrlin’s command, too, as you very well know. And you will continue teaching the Windfinders and go about your lives as Aes Sedai should. We are supposed to deal with people’s fears and soothe them, not spread senseless gossip and panic.”
Well, perhaps she had been a touch more than firm. Sareitha put her gaze on the floor tiles like a rebuked novice. Merilille flinched again at mention of the Windfinders, but that was to be expected. The others gave lessons, but the Sea Folk held Merilille as tightly as they did one of their apprentices. She slept in their quarters and normally was not seen without two or three of them, and her trailing meekly at their heels. They refused to accept anything less than meekness from her.
“Of course, Elayne,” Careane said hastily. “Of course. None of us would suggest disobeying the Amyrlin.” Hesitating, she adjusted her green-fringed shawl over her arms, seemingly occupied with setting it just so. She did spare a pitying look for Merilille. “But speaking of the Sea Folk, could you tell Vandene to take her share of the lessons?” When Elayne said nothing, her voice took on an edge that would have been called sullen in anyone not Aes Sedai. “She says she’s too busy with those two runaways, but she finds enough time to keep me talking some nights until I’m half asleep. That pair is already so cowed they wouldn’t squeak if their dresses caught fire. They don’t need her attention. She could take her portion of teaching those cursed wilders. Vandene needs to start behaving as an Aes Sedai, too!”
Standing or no, rebuke or no, she gave Elayne a baleful glare that took her a moment to smother. Elayne had been the one who made the bargain that led to Aes Sedai having to teach Windfinders, but so far she herself had managed to miss giving more than a handful of lessons, claiming the press of other, more important duties. Besides, the Sea Folk saw a shorebound teacher as a hireling, even an Aes Sedai, and a hireling with less standing than a scullion at that. A scullion who might try to cheat on her labor. She still thought Nynaeve had gone away just to avoid giving those lessons. Certainly no one expected to end up in Merilille’s state, but even a few hours at a time was bad enough.
“Oh, no, Careane,” Sareitha put in, still avoiding Elayne’s eye. And Merilille’s. In her opinion, the Gray had gotten herself into this fix and thus deserved what came of it, but she did try not to rub salt in the wounds. “Vandene is distraught over her sister, and Kirstian and Zarya help her occupy her mind.” Whatever she thought of the other Kin, she accepted that Zarya was a runaway, as she had to, since Zarya was one of those Careane had recognized, and if Kirstian must be a liar, her own lie would make her pay in full for that. Runaways were not treated kindly. “I spend hours with her, too, and she almost never talks of anything but Adeleas. It’s as if she wants to add my memories to her own. I think she needs to be allowed as much time as she needs, and those two keep her from being alone too often.” Giving Elayne a sidelong glance, she drew breath. “Still, teaching the Windfinders is certainly . . . challenging. Perhaps an hour now and then would help pull her out of despondency, if only by making her angry. Don’t you agree, Elayne? Just an hour or two, now and then.”
“Vandene will be allowed as much time to grieve for her sister as she needs or wants,” Elayne said in level tones. “And there will be no more discussion of it.”
Careane sighed heavily and rearranged her shawl again. Sareitha sighed faintly and began twisting the Great Serpent ring on the forefinger of her left hand. Perhaps they had sensed her mood, or perhaps it was just that neither looked forward to another session with the Windfinders. Merilille’s permanently surprised expression did not change, but then, her sessions with the Sea Folk lasted all day and all night unless Elayne managed to pry her away, and the Windfinders were becoming less and less willing to let her go no matter how Elayne pried.
At least she had managed to avoid being curt with the three. It took an effort, especially with Aviendha there. Elayne did not know what she would do if she ever lost her sister. Vandene was not only grieving for a sister, she was searching for Adeleas’s murderer, and there could be no doubt that the killer was Merilille Ceandevin, Careane Fransi or Sareitha Tomares. One of them, or worse, more than one. The charge was hard to believe of Merilille, in her present condition, but it was not easy to believe of any sister. As Birgitte had pointed out, one of the worst Darkfriends she had ever met, during the Trolloc Wars, was a mild-as-milk lad who jumped at loud noises. And poisoned an entire city’s water supply. Aviendha’s suggestion was to put all three to the question, which had horrified Birgitte, but Aviendha was considerably less in awe of Aes Sedai than she once had been. The proper courtesies must be maintained, until there was evidence to convict. Then there would be no courtesy at all.
“Oh,” Sareitha said, brightening suddenly. “Here’s Captain Mellar. He was a hero again while you were gone, Elayne.”
Aviendha gripped the hilt of her belt knife, and Birgitte stiffened. Careane’s face went very still, very cold, and even Merilille managed a disapproving hauteur. Neither sister made any secret of her dislike for Doilan Mellar.
With a narrow face, he was not pretty, or even handsome, yet he moved with a swordsman’s lithe grace that spoke of physical strength. As Captain of Elayne’s bodyguard, he rated three golden knots of rank, and he wore them soldered to each shoulder of his brightly burnished breastplate.  The falls of snow-white lace at his throat and wrists were twice as thick and twice as long as those worn by any of the Guardswomen, but he had left off the sash again, perhaps because it would have obscured one set of golden knots. He claimed that he wanted nothing more in life than to command her bodyguard, yet he frequently talked of battles he had fought as a mercenary. It seemed he had never been on the losing side, and victory had often come from his unsung efforts on the field. He swept off his white-plumed hat in a deep, flourishing bow, managing his sword deftly with one hand, then offered a slightly lesser to Birgitte with an arm across his chest in salute.
Elayne arranged a smile on her face. “Sareitha says you were a hero again, Captain Mellar. How so?”
“Nothing more than my duty to my queen.” Despite a voice thick with self-deprecation, his answering smile was warmer than it should have been. Half the palace thought him the father of Elayne’s child. That she had not crushed that rumor seemed to make him believe he had prospects. The smile never reached his dark eyes, though. They remained as cold as death. “My duty to you is my pleasure, my Queen.”
“Captain Mellar led another sortie without orders yesterday,” Birgitte said in a carefully even voice. “This time the fighting almost spilled into the Far Madding Gate, which he had ordered left open against his return.” Elayne felt her face growing hard.
“Oh, no,” Sareitha protested. “It wasn’t like that at all. A hundred of Lord Luan’s armsmen tried to reach the city in the night, but they left it too late, and sunrise caught them. So did three times their number of Lord Nasin’s men. If Captain Mellar hadn’t opened the gates and led a rescue, they’d have been cut to pieces in sight of the walls. As it was, he managed to save eighty for your cause.” Smiling, Mellar basked in the Aes Sedai’s praise as if he had not heard Birgitte’s criticism. Of course, he seemed unaware of Careane and Merilille’s disapproving stares, too. He always managed to ignore disapproval.
“How did you know they were Lord Luan’s men, Captain?” Elayne asked quietly. A small smile that should have given Mellar warning appeared on Birgitte’s face. But then, he was one of those who seemed not to believe she was a Warder. Even if he did, few except Warders and Aes Sedai knew what the bond entailed. If anything, Mellar’s expression grew more smug.
“I didn’t go by banners, my Queen. Anybody can carry a banner. I recognized Jurad Accan through my looking glass. Accan is Luan’s man to his toenails. Once I knew that . . . ” He made a dismissive gesture in a flurry of lace.  Anything signed and sealed, affirming House Norwelyn’s support for Trakand?”
“Nothing in writing, my Queen, but as I said—”
“Lord Luan has not declared for me, Captain.”
Mellar’s smile faded somewhat. He was unused to being cut short. “But, my Queen, Lady Dyelin says that Luan is as good as in your camp right now. Accan showing up is proof of—”
“Of nothing, Captain,” Elayne said coldly. “Perhaps Lord Luan will be in my camp eventually, Captain, but until he declares, you’ve given me eighty men who need to be watched.” Eighty out of a hundred. And how many of hers had he lost? And he had risked Caemlyn doing it, burn him! “Since you can find time in your duties commanding my bodyguard to lead sorties, you can find time to arrange for watching them. I won’t spare anyone from the walls for it. Set Master Accan and his fellows to drilling the men I’ve brought in from the manors. That will keep them all busy and out of trouble most of each day, but I leave it to you how to keep them away from the walls the rest of the time. And I do expect them kept away from the walls and out of trouble, Captain. You may see to it now.”
Mellar stared at her, stunned. She had never taken him to task before, and he did not like it, particularly in front of so many witnesses. There were no over-warm smiles now.   Before he had gone three paces he was striding down the hall as if to trample anyone who got in his way. She would have to tell Rasoria to take care. He might try to soothe his bile by taking it out on those who had seen and heard. Merilille and Careane gave almost identical nods; they would have seen Mellar called down, and preferably put out of the palace, long since.
“Even if he did wrong,” Sareitha said carefully, “and I am not convinced that he did, Captain Mellar saved your life at risk to his own, Elayne, your life and that of the Lady Dyelin.  Elayne felt Aviendha grip one of her hands, and Birgitte the other. She gave each of them a light squeeze. When you were surrounded by enemies, it was good to have a sister and a friend close by. “I am going to find a hot bath now, and unless one of you wishes to scrub my back . . . ?”
They could recognize a dismissal, and they departed more gracefully than Captain Mellar, Careane and Sareitha already discussing whether or not the Windfinders would actually want lessons today, Merilille trying to look every direction at once in hope of avoiding any Windfinders. What would they talk of later, though? Whether Elayne was having a spat with the father of her child? Whether they had successfully hidden their guilt in killing Adeleas?
I always pay my debts, Elayne thought, watching them go. And I help my friends pay theirs.


Privacy Policy
Driver login
Steer Clear is a safe-ride program at William & Mary that provides a reliable, secure and free means of travel for students on weekend nights when school is in session.


Privacy Policy
The Salk Institute for Biological Studies (“Salk”) values our donors, job applicants, volunteers and all on-line visitors (collectively, “Visitors”) and is committed to respecting and protecting their privacy. It does not sell, trade or rent information it collects from them with other organizations or use that information to make mailings on behalf of other organizations. Salk provides the opportunity to those who do not wish to be publicly acknowledged to be recognized anonymously. Within Salk, we limit access to this information to circumstances that require such access.
Information Salk collects includes personal information that is voluntarily provided by Visitors, including electronically, and information that is publicly available. The types of personally identifiable information collected may include a Visitor’s name, home, work and email address, telephone and fax number, credit card information, date of birth, gender, qualifications, educational and work history and expertise. The Salk uses that information to accept donations and applications for employment and to inform our donors and prospects about news and activities of the Salk, upcoming events and our fundraising needs, to thank donors and distribute receipts, and to make reports to U.S. and state agencies as required by law.
We may need to disclose this personal information to third party vendors to process, analyze and/or store data for us. We try to ensure that these entities do not use personal information for any other purpose, and that they have agreed to maintain the confidentiality and integrity of the information they obtain from us.
The Salk also collects certain traffic data information such as an on-line Visitor’s IP address, domain server, type of computer and type of web browser. This is anonymous information that does not personally identify the Visitor but is helpful for purposes of improving the experience on our website.
We provide links from our websites to other websites that we believe may be of interest to our on-line Visitors. Please be aware that those sites may collect information. This policy does not apply to, and cannot control, those other websites.
This policy may change from time to time, so please check back periodically to ensure that you are aware of any changes.
We will remove anyone who requests deletion from our mailing lists. If you wish to be removed or have any questions about our privacy policy, please email us at<EMAIL_ADDRESS>(Last updated October, 2010.)


Try out our Premium Member services: Virtual Legal Assistant, Query Alert Service and an ad-free experience. Free for one month and pay only if you like it.
HIGH COURT OF JUDICATURE AT ALLAHABAD Court No. - 7 Case :- PUBLIC INTEREST LITIGATION (PIL) No. - 492 of 2020 Petitioner :- Gajendra Singh Rana, S/o Kirpal Singh, R/o Village and Post-Parpa, Thsil Dhaulana, District Hapur Respondent :- State Of U.P. Through Secretary Department of Environment Government of U.P., Lucknow And 4 Others Counsel for Petitioner :- S.S.P. Gupta holding brief of Tabrez Ahmad Counsel for Respondent nos. 3 & 4 :- J. N. Maurya Hon'ble Biswanath Somadder,J.
Hon'ble Dr. Yogendra Kumar Srivastava,J.
The present writ petition has been filed as a public interest litigation seeking to raise certain issues with regard to functioning of the brick kiln by the respondent no. 5.
Learned advocate appearing for the respondent nos. 3 and 4 has produced instructions to the effect that the necessary compliance in respect of environment laws have been ensured in respect of the brick kiln in question. The instructions, which have been placed by the learned advocate appearing for the respondent nos. 3 and 4, are as follows :-
"a) That it is a matter of fact that M/s Sheela Devi Int Udyog (Earlier name Vikas Brick Filed and Preet Int Udyog), Village Parpa, Tehsil Dhaulana, District Hapur were issued closure order vide Board's letter dated 05.05.2017.
b) That in compliance of said orders, the kiln was closed by a joint team of officials from District Administration, Hapur, Police, Zila Panchayat, Fire Department and UPPCB by dousing the fire in the said kiln by means of a fire brigade in presences of the applicant in this case Shri Gajendra Singh Rana on 09.05.2017. Compliance of closure order issued by Board dated 05.05.2017 was ensured.
c) That it is a matter of fact that the said kiln changed its name to M/s Ambey Int Udyog and again started operations in the year 2018 without obtaining Consent to Operate from Board, changing to Zig-zag rectangular technology and in violation of closure order issued by Board vide letter dated 05.05.2017.
d) That the said kiln was inspected by officers of Regional Office, Ghaziabad on 05.04.2018 and found that the kiln is operational.
e) That the application of M/s Ambey Int Udyog applied on Online Consent Monitoring and Management System of UPPCB was rejected and action under Section 31A of Water (Prevention and Control of Pollution) Act, 1981 was recommended on 17.04.2018.
f) That closure order against M/s Ambey Int Udyog, Village Parpa, Tehsil Dhaulana, District Hapur was issued by Board on 18.04.2018 in assimilation to closure order issued against that M/s Sheela Devi Int Udyog (Earlier name Vikas Brick Filed and Preet Int Udyog).
g) That a joint team of District Administration, Police and UPPCB inspected the said kiln on 21.04.2018 and the kiln was found closed in compliance of Board's order dated 18.04.2018.
h) That the closure order issued by Board was revoked vide letter dated 18.02.2019 on the basis of site inspection report dated 14.01.2019 in which the kiln was found to be converted to zig-zag rectangular setting in compliance of orders of CPCB.
i) That the said kiln obtained Environmental Clearance for mining 16.10.2017.
J) That M/s Ambey Int Udyog, Village Parpa, Tehsil Dhaulana, District Hapur applied for obtaining Consent to Operated under relevant sections of Air and Water Act by means of Online Consent Monitoring and Management System of UPPCB and the Consent to Operate was issued up to 31.07.2013 under relevant sections of Air and Water Act.
k) That the kiln has a valid Consent to Operate as of today "
Having regard to the aforesaid we are of the view that since necessary steps have been taken by the respondent U. P. Pollution Control Board and its officers to ensure compliance of the relevant statutory provisions, no further order is required to be passed in the present petition.
The writ petition stands disposed of accordingly.
Order Date :- 06.03.2020 Ravi (Biswanath Somadder, J.) (Dr. Y. K. Srivastava, J.)


What's on your gRPC wire, Protocol Buffers or JSON?
The hot kid on the block for microservice APIs is gRPC, a Google developed, OpenSource binary wire protocol.
Its native serialization format is Protocol Buffers, advertised as "Protocol buffers are a language-neutral, platform-neutral extensible mechanism for serializing structured data". How does that fit into Domino picture?
Same same, but different
When old bags, like me, hear the word RPC a flood of memories and technologies come to mind:
- DCOM Microsoft's take on: like Java, but Windows only, superceded by WCF for dotNet
- Corba a standard defined by a commitee, mainly Java (and YES Domino still ships with a Corba Server)
- SOAP with our beloved (or was the word: cursed?) WSDL
There are a few more modern contenders like Apache Thrift, Apache Avro or the KF - TEE. Good to have so many open standards.
the good
Especially with SOAP the common reaction to the rise of REST was: Good riddance RPC. I'm using the term REST fast and loose here, since a lot of the APIs are more like "http endpoints accepting JSON payloads" rather than REST in the formal sense of the definition.
So what's different with gRPC, so it got adopted by the Cloud Native Computing Foundation? IMHO there are several reasons:
- It is designed by really smart engineers to run up to Google scale
- It is ground up optimized, not bothering with legacy, but betting on HTTP/2 and its wire efficiencies
- It is a compact binary protocol, making it efficient in low bandwidth and/or high volume use cases (Google scale anyone)
- It transmits data only, no repeated meta data as in JSON or XML based approaches (at least when you use Protocol Buffers)
- It focused on code generation, functioning more like an SDK than an API
- It has versioning support built in
- It uses rich structured data types (15 on last count) including enumerations. Notably absent: date/time and currency
And of course: it's the current fashion. RedHat provides a compehensive comparison to OpenAPI, as do others. Poking around YouTube I gained the impression, that most comparisons are made to REST and its limitations, almost similar to sessions about GraphQL. Mr. Sandoval tries to describe differentiators and use cases, go read it, it is quite good.
the bad and ugly
Clearly seeing the strenght, I see weakness too. Some of them are more or less relevant, lets list them out:
- SDK vs. API. Google's protoc generates code for C++, Java, Python, Objective-C, C#, JavaScript, Ruby, Go, PHP and Dart. If you fancy other languages you are out of luck. Pretty much each language can access http (even LotusScript), but for gRPC, you are limited to the provided languages (probably not an issue for mainstream programmers, except for our LotusScript fans)
- The binary protocol makes it way harder to introspect. Without the proto file, it is a lot of guesswork what goes over the wire. If you think that's not an issue, check the Domino AppDev Pack) for its proto file
- Structured data (only). Domino's documents and views are notoriously flexible. While you could define a structured data model for one specific application, generic Domino will pose a challenge
JSON over gRPC
Is there potentially a way to still use JSON, but leveraging HTTP/2 and the gRPC protocol? Turns out, it is possible. Protocol Buffers is only one (default) way to use gRPC. In an August 2018 blog post, Carl Mastrangelo outlines how a JSON binding using Google's GSON JSON library (there is also transcoding, but requiring data to be structured).
Compared to his native example that did 2400 RPCs per second, the JSON binding example comes in at 2200 RPCs per second. Unless you have a Google scale problem, that should suffice.
Ditching Protocol Buffers comes with a price: protoc will no longer generate any code stubs for you, so you have to handcraft those. In the bigger scheme of things that might just be a labour of love. Unless someone takes your OpenAPI specification and send it through an OpenAPI Generator. If memory serves that might not be as hard as it looks.
So stay tuned!
Posted by Stephan H Wissel on 15 October 2019 | Comments (0) | categories: Domino gRPC HTTP(S) Networking WebDevelopment


West Ford [ae4o], city, in Painted Desert [av67], in Imperia
Last updated Turn #148
West Ford [ae4o], city, in Painted Desert [av67], in Imperia
------------------------------------------------------------------------
0: Lab Rat [a2e] recruited 26 peasants.
1: West Ford [ae4o] bought five clay pots [95] from Lab Rat [a2e] for
1: 35 gold.
Routes leaving West Ford:
Out, desert, to Painted Desert [av67], 1 day
Cities rumored to be nearby:
Imperial City [aa0c], in Imperial Forest [aq70]
Ilya [ae3l], in Painted Desert [au70]
Market report (tax of 25%):
trade who price qty wt/ea item
----- --- ----- --- ----- ----
buy ae4o 26 14 1 chimera eyes [328]
buy ae4o 22 8 2 gorgon livers [332]
buy ae4o 16 17 10 giants' tongues [335]
buy ae4o 9 15 10 fish oil [97]
buy ae4o 7 9 5 clay pots [95]
sell ae4o 1,100 1 5 rare book [ez1m]
Inner locations:
Public tower [l96], tower, defense 20
Public tower [s39], Construction Guild, defense 20
Public tower [t25], tower, defense 20, 11% damaged
Long Family Tower [p80], tower, defense 20
Public tower [m73], tower, defense 20
Seen here:
* Lab Rat [a2e], Imperial Empire, with four peasants, 26 workers


{% extends "base.html" %} {% block content %}
Coders: It is recommended that you use Mozilla Firefox for data entry. If you wish to use Chrome / Safari, please follow the instructions displayed on the coding page(s).
Your username and password didn't match. Please try again.
{% endif %}


§489D-12.5 Penalties and other charges. Administrative penalties and other charges assessed under this chapter shall be deposited into the compliance resolution fund established pursuant to section 26-9(o). [L 2008, c 195, pt of §1; am L 2013, c 167, §8]


Constructor
new MatchCard(props)
Parameters:
| Name | Type | Description | ||||||
|---|---|---|---|---|---|---|---|---|
props |
Object | JSON object that stores props sent from parent object Properties
|
- Source:
Extends
- React.Component
Members
info :SingleMatchUserProfile
Contains the data needed to render the user's single match within MatchCard as well as in SingleMatchPopup
Type:
- Source:
showPopup :boolean
Boolean to control whether this match's SingleMatchPopup should be displayed.
Type:
- boolean
- Source:
Methods
setInfo(val)
Function to set the value of the info object
Parameters:
| Name | Type | Description |
|---|---|---|
val |
boolean |
- Source:
setShowPopup(val)
Function to set the value of the showPopup boolean
Parameters:
| Name | Type | Description |
|---|---|---|
val |
boolean |
- Source:


@(headers: Map[String,String], sessionInfo: String, snippet: String) @main("Play ESI Test") {
Click here to set session info
Info from session is "@sessionInfo"
This should be removed.


Designed by Nikhil Ranjan
Copyright 2012 DevBridge
Hit Music Prediction
Check out the
source code here
on Github.
Choose a song and the results will display here.


Witcher - Another Epic TV Show
Joss Whedon has a little bit of a history with superhero movies, and for creating layered female characters. After his documented frustrations with Wonder Woman, he's getting another chance at the DC Extended Universe and Warner Bros., closing in on a deal to write direct and produce a Batgirl movie.
It's a somewhat surprising, but welcome move, given that Whedon has taken a long break to write something original, but has now pivoted to focus on developing the Batgirl project. First appearing in 1967 in Gardner Fox and Carmine Infantino's story run The Million Dollar Debut Of Batgirl, she's the superhero alias of Barbara Gordon, daughter of Gotham City Police Commissioner James Gordon. So we can likely expect J.K. Simmons' take on Gordon to appear along with other Bat-related characters.
Based on Lissa Evans’ novel “Their Finest Hour and a Half” and directed by Lone Scherfig (“An Education”), the film is set in London during World War II when the British ministry was utilizing propaganda films to boost morale. Arterton plays Catrin Cole, a scriptwriter who is brought on to handle the women’s dialogue — commonly referred to as “the nausea.” The film, opening this week, features an outstanding ensemble, including Bill Nighy as a washed-up actor and Sam Claflin as Catrin’s fellow writer and sparring partner.
Arterton is next set to play Vita Sackville-West in Vita and Virginia about her relationship with Virginia Woolf. She spoke to Variety about working with female directors, remarkable women, and why she shies away from the
term “strong female character.”
I’m friends with the producer who I worked with on Byzantium and he sent it to me. I read the book as well, which is fantastic. You’re always looking for untold stories and many times they’re women’s stories. What surprised me is that it centers around a woman who’s really quite timid. I guess she’s allowed to be because all of the other characters.
Man Down debuted simultaneously on digital platforms in the U.K., meaning it was never going to be a big earner in theaters. But no one expected only one ticket sale. As of Tuesday, the Reel Cinema in Burnley was still carrying Man Down, which also stars Gary Oldman, Jai Courtney and Kate Mara.
In the film, LaBeouf stars as a war veteran suffering from PTSD following his return from Afghanistan. The indie project, reuniting the star with A Guide to Recognizing Your Saints director Dito Montile, made its world premiere at the 2016 Venice Film Festival before making making a stop at the Toronto International Film Festival.


The available positions are: top, left, bottom, right, width and height
var picker = new smartPicker("regular", "my-picker", { top: 300, width: '600px' }); picker.show();
The available transitions are: 'no-transition', 'fade', 'slide', 'slideUp', 'slideRight', 'slideLeft'
var picker = new smartPicker("regular", "my-picker", { transition: 'fade' }); picker.show();
You may overwrite the picker's styles, or you can simply add a class to make it look different
var picker = new smartPicker("regular", "my-picker", { closeButton: true, confirmButton: "Confirm here", //any string or boolean values }); picker.show();
If you want to disable clicking the overlay to close the modal, set it to false... It only makes sense for modals.
var picker = new smartPicker("regular", "my-picker", { clickOverlay: false }); picker.show();
You can have draggable modals too...
var picker = new smartPicker("regular", "my-picker", { clickOverlay: false }); picker.show();


Employs a non-parametric formulation for by-subject random effect parameters to borrow strength over a constrained number of repeated measurement waves in a fashion that permits multiple effects per subject. One class of models employs a Dirichlet process (DP) prior for the subject random effects and includes an additional set of random effects that utilize a different grouping factor and are mapped back to clients through a multiple membership weight matrix; e.g. treatment(s) exposure or dosage. A second class of models employs a dependent DP (DDP) prior for the subject random effects that directly incorporates the multiple membership pattern.
| Version: | <IP_ADDRESS> |
| Depends: | R (≥ 3.2.2), Rcpp (≥ 0.11.6) |
| Imports: | reshape2 (≥ 1.2.1), Formula (≥ 1.0-0), ggplot2 (≥ 1.0.1) |
| LinkingTo: | Rcpp (≥ 0.11.6), RcppArmadillo (≥ 0.5.000) |
| Suggests: | testthat (≥ 0.9.1) |
| Published: | 2016-12-21 |
| Author: | Terrance Savitsky |
| Maintainer: | Terrance Savitsky <tds151 at gmail.com> |
| License: | GPL-2 | GPL-3 [expanded from: GPL (≥ 2)] |
| NeedsCompilation: | yes |
| Citation: | growcurves citation info |
| Materials: | NEWS |
| In views: | Bayesian |
| CRAN checks: | growcurves results |
| Reference manual: | growcurves.pdf |
| Package source: | growcurves_<IP_ADDRESS>.tar.gz |
| Windows binaries: | r-devel: growcurves_<IP_ADDRESS>.zip, r-release: growcurves_<IP_ADDRESS>.zip, r-oldrel: growcurves_<IP_ADDRESS>.zip |
| OS X binaries: | r-release: growcurves_<IP_ADDRESS>.tgz, r-oldrel: growcurves_<IP_ADDRESS>.tgz |
| Old sources: | growcurves archive |
Please use the canonical form https://CRAN.R-project.org/package=growcurves to link to this page.


CYTOF Assay
Description: Information about the acquisition and analysis CyTOF data.
| Property | Description | Data Type |
|---|---|---|
|
assay_creator
required |
Indicates what site is filling out the assay. |
<
string
>
|
|
assay_run_id
required |
User defined unique identifier for this assay run. Not necessarily unique across batches. | < string > |
|
batch_id
required |
CyTOF batch identification number. Unique to every batch. | < string > |
|
protocol_identifier
required |
Trial identifier used by lead organization, ie. Center for Experimental Therapeutics Program (CTEP) ID or Industry Sponsored ID. This is usually a short identifier. Example: E4412. | < string > |
| acquisition_buffer | Cell staining buffer used for antibody and cell dilution. | < string > |
| barcoding_key_csv | The master debarcoding key in a CSV file | csv |
| bead_removal | Boolean to indicate whether beads have been removed after normalization process | < boolean > |
| date_of_acquisition | Date of CyTOF batch acquisition. | < string > |
| debarcoding_protocol | The strategy/kit used to barcode CyTOF samples, if any | < string > |
| harware_version | Version no. of instrument hardware used. | < string > |
| injector | Name of Injector component used as part of the CyTOF software | < string > |
| instrument | Name of CyTOF instrument on which experiment was conducted. | < string > |
| normalization_method | Process used for normalization prior to analysis, if any. |
<
string
>
|
| source_fcs | The raw FCS file(s) generated running this batch. |
<
array
>
fcs |
| spike_in_fcs | Processed FCS file for the spike-in. | fcs |
| Property | Description | Data Type | ||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
required
<
array
>
|
||||||||||||||||||||||||||||||||
|
<
array
>
A data record for the barcoding strategy of a CyTOF assay batch.
|
||||||||||||||||||||||||||||||||
|
required
<
array
>
A single sample-level data record from CyTOF a assay batch.
|
||||||||||||||||||||||||||||||||
|
<
array
>
A data record for the control files in a CyTOF assay batch.
|
| Property | Description | Data Type |
|---|---|---|
|
assay_run_id
required |
User defined unique identifier for this assay run. Not necessarily unique across batches. | < string > |
|
batch_id
required |
CyTOF batch identification number. Unique to every batch. | < string > |
|
protocol_identifier
required |
Trial identifier used by lead organization, ie. Center for Experimental Therapeutics Program (CTEP) ID or Industry Sponsored ID. This is usually a short identifier. Example: E4412. | < string > |
| astrolabe_analysis | Information about a ZIP file. | zip |
| astrolabe_reports | Information about a ZIP file. | zip |
| control_files_analysis | Information about a ZIP file. | zip |
| Property | Description | Data Type | |||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
required
<
array
>
A single sample-level data record from CyTOF a assay batch.
|
|||||||||||||||||||||||||||||||||||
|
<
array
>
A list of samples excluded from analysis, along with the reasons why.
|
| Entity | Description |
|---|---|
| CYTOF assay template | Cytometry by Time-Of-Flight (CyTOF) aka mass-cytometry assay submission. |
| Entity | Description |
|---|---|
| CyTOF analysis template | Cytometry by Time-Of-Flight (CyTOF) analysis submission. |


All Transcactions
Transcaction ID
Payment Method
Field Invalid
Customer Card ID
Date of transcaction
Field Invalid
Store ID
Field Invalid
Total Price
Field Invalid
Total Pieces Bought
Field Invalid
Price History
Date Of Change
Old Price
New Price Item
Items Bought
Name
Barcode
Category
Signature Item
Current Price
Amount Bought
Action


{{ _('Spark') }} {{ _('powered by Firefox for mobile') }}
{{ title }}
{# L10n: This is an incentive for new users to remember the username of the person who shared their Spark with them. #}
{{ _('Remember {username} when you get Firefox for mobile and boost your Spark.')|fe(username=username) }}


Ticket 77 at GitHub.
Give the user the configuration to redefine the localPath (or variants of it). Demonstrates this by redefining some of the buttons. So by hovering over the button, you see that a different localization is used in this example only.
You have to redefine the locales paths before calling `pgnAny`, because this is done during initialization of the whole thing. So it is included in the head of this example, please have a look at the source code. To test it, I had to disable caching, to see an effect on this. So if you want to see that as well, disable it as well.


| Package | Description |
|---|---|
| general | |
| primitives.creation | |
| primitives.defuzzification | |
| primitives.implication | |
| primitives.operators | |
| sets.derived | |
| sets.function | |
| sets.general | |
| sets.operator | |
| sets.points |
| Class and Description |
|---|
| FuzzySet
This class represents all fuzzy sets.
|
| PointSet
This class represent all sets based on points.
|
| Class and Description |
|---|
| FuzzySet
This class represents all fuzzy sets.
|
| Class and Description |
|---|
| FuzzySet
This class represents all fuzzy sets.
|
| PointSet
This class represent all sets based on points.
|
| Class and Description |
|---|
| FuzzySet
This class represents all fuzzy sets.
|
| PointSet
This class represent all sets based on points.
|
| Class and Description |
|---|
| FuzzySet
This class represents all fuzzy sets.
|
| PointSet
This class represent all sets based on points.
|
| Class and Description |
|---|
| DerivedSet
This sets contains a continuous fuzzy set and a number that somehow modifies
the fuzzy set.
|
| FuzzySet
This class represents all fuzzy sets.
|
| Class and Description |
|---|
| FunctionSet
This class represents all sets based on formulas.
|
| FuzzySet
This class represents all fuzzy sets.
|
| Class and Description |
|---|
| FuzzySet
This class represents all fuzzy sets.
|
| Class and Description |
|---|
| FuzzySet
This class represents all fuzzy sets.
|
| OperatorSet
This set contains several fuzzy sets.
|
| Class and Description |
|---|
| FuzzySet
This class represents all fuzzy sets.
|
| PointSet
This class represent all sets based on points.
|


#include <varargs.h> va_list ap; va_start(ap);
Description
With the varargs.h macros, use va_start
to initialize a
data structure ap to permit manipulating a variable argument list.
ap must have the type va_alist.
Returns
va_start
does not return a result.
Portability
va_start
is also defined as a macro in ANSI C, but the
definitions are incompatible; the ANSI version has another parameter
besides ap.


When applying Convolutional Neural Networks (CNNs) (LeCun et al., 1990) to a computer vision task, a change in viewpoint (change in orientation, position, shear, etc.) is likely to lead to drastically different network activations, hindering the model’s ability to generalize. To solve this problem, current CNNs require a large number of parameters, datasets and computational power.
This lead to the introduction of Capsule Networks (Hinton et al., 2011). Capsule Networks aim to generalize to different viewpoints by taking advantage of the fact that the relationship between parts of an object is viewpoint invariant. It has been shown that these networks generalize better than standard CNNs, are more robust to adversarial attacks, achieve higher accuracy, all while requiring significantly fewer parameters.
In this post, we focus on the following topics…
- Introduction to the Viewpoint Problem
- CNN’s Solution
- Capsule Network’s Solution
- Introduction to Capsule Networks
- Routing Algorithms
- Dynamic Routing Between Capsules (Sabour et al., 2017)
- Matrix Capsules with EM Routing (Hinton et al., 2018)
- with a prerequisite: Gaussian Mixtures with EM
Though this may seem intimidating, don’t worry, as long as you don’t have a medical phobia of capsules, you’ll be able to swallow all the knowledge in this post.
The Problem
The problem comes from the goal of computer vision generalization, as we want our models to generalize to unseen data. My version of generalization is as follows,
After training on an image, when tested on a slightly modified version of the image, the two responses are similar.
One of the main reasons that test images are ‘slight modifications’ of training images is a change in viewpoint. A change in viewpoint is defined as,
A change in the position from which something or someone is observed.
A few examples of viewpoint transformations are as follows,
- Rotations (rotating 90 degrees)
- Shifts (moving 30 pixels left)
- Scaling (zooming in/moving closer; shift in the +z axis)
Note: Viewpoint-transformations can modify part(s) of the image or the entire image and can be applied to any of the 3 dimensions (x, y, or z).
Tip: Would your model be able to identify the car throughout all of its different viewpoint changes?
If we can reasonably account for viewpoint variability in images we will improve model generalization. Consequently, when improving model generalization we are also likely to improve model test accuracy while requiring fewer data examples and parameters.
Solutions
In this section, we briefly discuss solutions to the change in viewpoint, including the CNN solution and The Capsule Network solution. Both solutions include some kind of representation learning and information routing.
We define activations as \(a \in A\), model input as \(x \in X\), our model as \(f: X \rightarrow A\) and a viewpoint transformation as \(T\).
The CNN Solution - Brute Force and Extract
To account for viewpoint changes, general CNNs aim to model viewpoint-invariance. Invariance is defined as,
\[f(Tx) = f(x) \tag{0}\]Less formally, CNNs want their network activations to remain unchanged regardless of the viewpoint transformation applied. To show how CNNs could achieve this we must first introduce Data Augmentation and Max-pooling.
Data Augmentation - The Representations
A popular method to improve model generalization is to train on randomly augmented data examples. However, this turns out to be problematic and inefficient.
Learning viewpoint representations from data augmentations is difficult as most viewpoint transformations require 3D data. As most computer vision tasks train on 2D data, we are limited to simple 2D transformations.
Models which learn from the few viewpoint transformations we can apply turn out to be parameter inefficient. It’s been shown that early layers in a CNN trained with data augmentation are rotated, scaled and translated copies of one another (Zeiler & Fergus, 2013). This insight leads to the idea that CNNs could be learning specific feature detectors for each possible transformation to account for viewpoint variance, which is extremely inefficient.
Max-pooling - The Routing
Assuming that we have learned a feature detector for each corresponding viewpoint transformation, CNNs then attempt to route this information using the max-pooling layer (Riesenhuber & Poggio, 1999).
Max-pooling extracts the largest value in a group of neighbouring values.
\[f_{pool}: a_{pooled} = \max(a_{group}) \tag{1}\]Max-pooling is locally shift-invariant because shifts which don’t move the largest value out of its group, result in the same \(a_{pooled}\) being extracted.
We can formulate the max-pooling invariance as the following,
\[f_{pool}( T_{localshift} x) = f_{pool}(x) \tag{2}\]Applying max-pooling to feature maps of a network can help us learn a viewpoint-invariant model. For example, applying max-pooling to a group of rotation weight activations, we can extract the features of the best fit rotation. Doing so would allow us to become rotation invariant.
This leads to a CNNs approach to achieve viewpoint invariance; Learn a set of feature detectors for each viewpoint transformation and apply max-pooling to each group of transformation specific weights to extract/route the best fit activations.
However, an important problem with max-pooling is that we end up discarding a lot of useful information in the group.
Final Thoughts
In practice, it doesn’t work out nearly as nice and easy as I described but hopefully, this gives you a general idea about how representation learning and routing could be working with current CNNs.
Though this technique has lead to great results, it is easy to see how extremely inefficient and expensive to train a model like this is.
There must be a better way!
The Capsule Network Solution - A Capsule A Day Keeps The Invariance Away
Look no further, Capsule Network are here to save the day!
Unlike standard CNNs, Capsule Networks aim to model viewpoint-equivariance. Equivariance is defined as,
\[f(Tx) = Tf(x) \tag{3}\]Less formally, Capsule Networks want their network activations to change in a structured way corresponding to the viewpoint transformation. The idea is that it would be easier to model complex distributions like images if our activations change in a structured way.
Capsule Networks achieve equivariance in two steps.
- Explicitly represent parts located in the image.
- Take advantage of the fact that the relationship between parts of an object is viewpoint invariant.
Assuming we can identify and represent simple parts in an image (step 1), it would be nice to be able to combine these simple parts to detect more complex objects.
 Then I asked you, is there a face in the image? You would most likely check if the parts were structured in a certain way (eyes are above the nose, the mouth is right below the nose, etc.) and if they were, you would be confident there is a face in the image.
We can be confident there is a face in the image because there is a clear relationship between the eyes, the nose and the mouth to create a face. A great property about this relationship is that its viewpoint-invariant.
If we rotate, shift, change the brightness and apply a few other viewpoint transformations to the face (the object) and the relationships between the parts (the eyes, the nose and the mouth) and the object (the face) stay the same.
 If someone is watching you, your nose would be moving all over the place, but relative to your eyes, your nose won’t move at all. This is the invariance between parts of an object.
Capsule Networks work like this. We will dive more into the details next.
But before we do that, I ask you to repeat it with me…
‘What do we want?’
‘Equivariance to improve generalization requiring less data and parameters!’
‘When do we want it?’
‘Now!’
Excellent!
Introduction to Capsule Networks
In this section, we cover general details and the intuition behind Capsule Networks. For more posts on the topic see ‘More Resources’ at the bottom of the page.
We first define a few terms and the setup.
We refer to instances in an image as either a part or an object. The relationship is that a part belongs to an object. We assume a two-layer capsule network setup for conciseness. The first layer is referred to as low-level capsules (simple parts) and the second layer is referred to as high-level capsules (complex objects). Usually, the low-level capsules are known and we want to compute the high-level capsules. Don’t worry if that last part didn’t make sense, it will soon.
Part and Object Representations - The Part and The Capsule
- Explicitly represent parts located in the image.
Learning to model parts of an image directly would be very difficult. This is because a simple viewpoint transformation results in a large difference in pixel space.
We want to learn a manifold where viewpoint transformations in pixel space result in simple and easy to model differences.
This manifold relates to the pose of a part (position, orientation, size), since applying a viewpoint transformation to the image would only result in a simple change to the affected part’s pose. Since this manifold would be very complex to specify, we learn it with a CNN.
Note: This is similar to learning a disentangled representation, which is a popular subject in generative modelling.
Note: A part could be represented by more than its pose. For example, we could represent a part by its velocity, albedo, or texture but for simplicity, we only consider its pose.
To extract capsules from the image we pass the image through the CNN and reshape it’s feature vectors to some \(H'\) x \(W'\) x \(CapsuleDim\). This aims to encapsulate parts of the image into the learned manifold.
Since we treat each section of the image as a part, we must also represent the probability that there is a part, which we refer to as the presence probability.
The vector which stores the pose and presence probability of a part is called a ‘capsule’.
Routing Information - Complex Objects
We now focus on how to combine detected parts to detect more complex objects, which is called ‘routing’.
2. Take advantage of the fact that the relationship between parts of an object is viewpoint invariant.
Since we represent parts and objects with pose matrices we can represent the relationship between a part’s pose and its corresponding object’s pose with a weight matrix. It’s important to remember that this weight would remain the same after applying any viewpoint transformation because the relationship is viewpoint invariant.
For example, given the pose of an eye \(p_{e}\), we can predict the corresponding face pose \(p_{f}\) as follows,
\[\begin{aligned} p_{e} \cdot W_{ef} &= p_{f} \\ \iff f(p_{e}) &= p_{f} \tag{4} \end{aligned}\]Applying a transformation to the face object, by the viewpoint invariant relationship we get…
\[(T p_{e}) \cdot W_{ef} = T p_{f} \tag{5}\]Rearranging and substituting we get,
\[f(T p_{e}) = T f(p_{e}) \tag{6}\]Remind you of anything? Equivariance! \(f(T x) = T f(x)\). Since we are explicitly representing poses with network activations, our model will have viewpoint equivariance.
From simple parts extracted from the image, we now know how to detect more complex objects. But how can we be sure that the pose prediction is correct? and does the predicted face really exist?
Prediction Confidence - Agreement between Predictions
Think back to your early school days, back when you were given math homework. As readers of this blog, I’m sure you were/are all stellar students.
Your teacher would never believe you! So you do what must be done. You cheat. I know, awful, it was tough to even type that out.
You go to your friends and ask them what answers they got. If they all got the same answer you can be pretty confident that answer is correct. However, if everyone got different answers then you cannot be sure which answer is correct.
We follow the same principles since we extracted multiple parts/low-level capsules (nose, ears, etc.) from the image, we ask them to predict the object/high-level capsules pose (face). We can set the high-level capsules pose as the most agreed upon prediction and its presence probability as the amount of agreement.
Example: If most low-level capsules agree on the high-level capsule’s pose, then we can be confident, by setting a high presence probability (activate the high-level capsule).
Usually, there will be more than one object represented in an image, so we repeat this process for every high-level capsule. Thus, every low-level capsule predicts every high-level capsule and we look for agreement between the predictions to set the high-level capsules’ value.
Capsule Recap
We achieve viewpoint equivariance by representing parts explicitly and taking advantage of the viewpoint invariant relationships between parts of an object.
We first transform the image into a manifold where viewpoint transformations result in simple changes, extracting poses and presence probabilities of parts in the image.
Each part (low-level capsule) predicts each object (high-level capsule). We route agreed-upon predictions to high-level capsules and set their presence probabilities as the amount of agreement between predictions.
Note: The number of low-level capsules can be related to the number of receptive fields in the eye (too few can result in ‘crowding’ where a single capsule/receptive field represents more than one part/object)
There are multiple ways to implement routing, we will cover two versions next.
Routing Algorithms
The two algorithms we will cover are ‘Dynamic routing between capsules’ and ‘Matrix Capsules with EM Routing’.
If you understood the intuition in the previous section then this should be a breeze.
Dynamic Routing Between Capsules
This paper implements a very standard and easy to understand version of Capsule Networks. We cover the high-level details, for more specific details refer to the paper or other posts in the ‘More Resources’ section.
Architecture
The network consists of the manifold CNN, a single layer of low-level capsules and a single layer of high-level capsules representing the classes of the classification task (10 classes/high-level capsules on MNIST).
The procedure is as follows
- Extract low-level capsules using the CNN
- Compute high-level capsules
Representations
The capsules are represented by 8-dimensional vectors and the presence probability is represented by the magnitude of the capsule. We extract features with a standard CNN and then reshape the features to produce capsules for our image.
Predictions
Low-level capsules predict high-level using weights \(W_{ij}\). The \(i^{th}\) low-level capsule predicts the \(j^{th}\) high-level capsule as \(\hat{u}_{j \mid i}\).
\[u_i \cdot W_{ij} = \hat{u}_{j\mid i} \tag{7}\]Now that we know how to compute predictions for high-level capsules, we focus on how to computationally find agreement.
Routing with Agreement
For each \(j^{th}\) high-level capsule, we will have \(I\) predictions (\(\hat{u}_{1 \mid j}, \hat{u}_{2 \mid j}, ..., \hat{u}_{I \mid j}\)), one from each of the \(I\) low-level capsules.
We find agreement with an iterative algorithm which consists of three steps,
- Compute the high-level capsule \(s_j\), with a linear combination of predictions
- Apply the squash function to \(s_j\)
- Increase the weight of inlier predictions
First we assign routing weights for each of the \(K\) predictions, \(c_{1 \mid j}, c_{2 \mid j}, ..., c_{I \mid j}\) for every \(j^{th}\) capsule. They are all initialized to zero.
\[\underline{Iteration Start}\]To ensure that each part corresponds to a single object, we apply the softmax to each low-level capsules routing weights.
\[c_i = softmax(c_i) \tag{8}\]For each high-level capsule, we compute the high-level pose \(s_j\) with a linear combination of predictions weighted by the routing weights from the low-level capsules.
\[s_j = \sum_i c_{i \mid j} \hat{u}_{i \mid j} \tag{9}\]The squash function is then applied to ensure \(\|\mathbf{v_j}\| \leq 1\).
\[v_j = \dfrac{\|\mathbf{s_j}\|^2}{1 + \|\mathbf{s_j}\|^2} \dfrac{s_j}{\|\mathbf{s_j}\|} \tag{10}\]Next, we update the weights \(c_{i \mid j}\) by how much they ‘agree’ with the predicted \(v_j\). Where the dot is vector dot product.
\[c_{i \mid j} = c_{i \mid j} + (\hat{u}_{i \mid j} \cdot v_j) \tag{11}\]Since \(\hat{u}_{i \mid j} \cdot v_j = \|\mathbf{\hat{u}_{i \mid j}}\| \|\mathbf{v_j}\| \cos \theta\) where \(\theta\) is the angle between the two vectors. Since \(\cos \theta\) has a maximum value when \(\theta = 0\) we end up increasing the weight of vectors whos angle is close to \(v_j\).
\[\underline{Iteration End}\]In practice, we repeat the iteration 3-5 times to find agreement.
Note: This is similar to finding a cluster centroid in the predictions.
That is all we will cover since there are a lot of great resources online covering this algorithm. Taken from the paper, the algorithm is below.
Matrix Capsules with EM Routing Prereq.
The next algorithm we will cover is ‘Matrix Routing with EM’. Since this algorithm is the most complex and least covered online, we will focus on it in-depth.
The algorithm relies on Gaussian Mixtures and Expectation-Maximization. We will review both topics and how they relate to the main algorithm.
If you are familiar with both feel free to jump to the ‘Matrix Capsules with EM Routing’ section which begins to review the paper.
For more detailed explanations and derivations on Gaussian Mixtures and EM, I highly suggest you read the linked Mixture Models notes written by University of Toronto faculty.
Mixture of Gaussian
For an awesome additional resource on this topic checkout Roger Grosse’s notes here
Modeling
Assume our data distribution is multimodal (more than one hump). We would like to model our data with the efficient Gaussian distribution but a single Gaussian would not fit the data well.
What in the world shall we do? The data world has not been kind to us but as readers of this blog, we will not go quietly in the night. We shall do the unthinkable and model our data with a mixture of MULTIPLE Gaussians!
For generality, assume we want to model our data with \(K\) Gaussian distributions and our data consists of \(N\) points.
Modelling our data with multiple Gaussians we can derive the likelihood as follows,
\[\begin{aligned} p(x) &= \sum_K P(x | z=k) \; p(z=k) \\ &= \sum_K \pi_k \; P(x | z=k) \tag{12}\\ &= \sum_K \pi_k \; \mathcal{N}(x \mid \mu_k, \sigma_k) \\ \end{aligned}\]So the parameters we aim to optimize \(\theta = \{\mu_1, \sigma_1, \pi_1, ..., \mu_K, \sigma_K, \pi_K\}\)
Optimizing with Expectation-Maximization
There are multiple ways we could optimize our model but we do not settle for just any technique. You got it, we focus on expectation-maximization! An elegant and efficient algorithm for optimizing model parameters to our data.
Note: There is a more general form of EM which applies to any latent distribution but since we only use the Gaussian mixture edition, we will only focus on it.
The heart of the algorithm is the following formula,
\[\begin{aligned} \dfrac{d}{d\theta}\log{p(x)} &= \mathbb{E}_{p(z\mid x)}[\dfrac{d}{d\theta} \log p(z, x)] \tag{13} \\ &= \mathbb{E}_{p(z\mid x)}[\dfrac{d}{d\theta} \log p(z) + \log p(x \mid z)] \\ \end{aligned}\]Computing \(\log p(z)\) and \(\log p(x \mid z)\) is trivial since \(\log p(z)\) is a learned parameter \(\pi_k\) and \(\log p(x \mid z)\) can be calculated with the Gaussian PDF formula.
How would we compute \(p(z\mid x)\)? We use bayes rule to get,
\[\begin{aligned} p(z \mid x) &\propto p(x \mid z) p(z) \tag{14}\\ \\[0.2mm] p(z=k \mid x) &= \dfrac{p(x \mid z=k) p(z=k)}{\sum_K p(x \mid z=k) p(z=k)} \\ \\[0.2mm] &= \dfrac{\pi_k \mathcal{N}(x \mid \mu_k, \sigma_k)}{\sum_K \pi_k \mathcal{N}(x \mid \mu_k, \sigma_k)} \end{aligned}\]Now that we know how to compute every term, out of curiosity we evaluate the log-likelihood’s derivative \(d \ell\) for our parameters \(\mu_k\), \(\sigma_k\) and \(\pi_k\)
For simplicity we let \(r_k^{(i)} = p(z = k \mid x^{(i)}) = \dfrac{\pi_k \mathcal{N}(x^{(i)} \mid \mu_k, \sigma_k)}{\sum_K \pi_k \mathcal{N}(x^{(i)} \mid \mu_k, \sigma_k)}\).
Solving for the derivative of the mean of the \(k^{th}\) Gaussian, \(\mu_k\)
\[\begin{aligned} \dfrac{d \ell}{d\mu_k} &= \mathbb{E}_{p(z\mid x)}[\dfrac{d}{d\mu_k} \log p(z) + \log p(x \mid z)] \\ &= \sum_{i=1}^{N} r_k^{(i)} \; [\dfrac{d}{d\mu_k} (\log p(z = k) + \log p(x^{(i)} \mid z = k))] \quad \text{[By definition of Expectation]}\tag{15}\\ &= \sum_{i=1}^{N} r_k^{(i)} \; [\dfrac{d}{d\mu_k} (\log \pi_k + \log \mathcal{N}(x^{(i)} \mid \mu_k, \sigma_k))] \\ &= \sum_{i=1}^{N} r_k^{(i)} \; \dfrac{d}{d\mu_k} \log \mathcal{N}(x^{(i)} \mid \mu_k, \sigma_k) \\ &= \sum_{i=1}^{N} r_k^{(i)} \; (0 + \dfrac{x^{(i)} - \mu_k}{\sigma_k^2}) \\ &= \sum_{i=1}^{N} r_k^{(i)} \; \dfrac{x^{(i)} - \mu_k}{\sigma_k^2} \\ \end{aligned}\]This looks very simple, so simple we should be able to solve for the optimal value by setting the derivative to zero. Doing so we get the optimal value \(\mu_k^*\),
\[\mu_k^* = \dfrac{\sum_{i=1}^{N} r_k^{(i)} x^{(i)}}{\sum_{i=1}^{N} r_k^{(i)}} \tag{16}\]Bystander: Whoa there cowboy, your \(r_k\) depends on \(\mu_k\) and thus that optimal value is incorrect. You should put on this approximate hat to signify you it is not the true optimal value…
\[\hat{\mu}^*\]Though this is not the true optimal value, it turns out to be a good approximation. This approximated optimal parameter \(\hat{\mu_k}^*\) is used as a ‘step’ towards the true optimal parameter \(\mu_k^*\).
We can derive similar results on the other parameters by fixing \(r_k^{(i)}\) to obtain approximate optimal values \(\hat{\theta}^*\) for parameters \(\theta\).
\[\hat{\pi_k}^* \leftarrow \dfrac{1}{N} \sum_{i=1}^N r_k^{(i)} \tag{17}\\ \\[0.4cm] \hat{\mu_k}^* \leftarrow \dfrac{\sum_{i=1}^N r_k^{(i)} x^{(i)}}{\sum_{i=1}^N r_k^{(i)}} \\[0.4cm] \hat{(\sigma_k^2)}^* \leftarrow \dfrac{\sum_{i=1}^N r_k^{(i)} (x^{(i)} - \mu_k)^2}{\sum_{i=1}^N r_k^{(i)}}\]This leads us to the iterative EM algorithm
The \(E\)-Step: Compute responsibilities \(r_k\).
\[r_k^{(i)} \leftarrow p(z = k \mid x^{(i)}) \tag{18}\]The \(M\)-Step: Compute and update parameters \(\theta\) to the approximate optimal parameters \(\hat{\theta}^*\)
\[\theta \leftarrow \arg\max_{\theta} \sum_{i=1}^N \sum_{k=1}^K r_k^{(i)} [\log p(z=k) + \log p(x^{(i)} \mid z = k)] \tag{19}\]The algorithm fits our data iteratively by
- Increase/decrease the weights \(r_k\) to the best/worst fit distributions
- Update the parameters to fit the current weights
Does this sound familiar? If you flip the steps and let the brain work its magic you have something similar to the Dynamic Routing algorithm.
In the next section, we talk about how we can use this algorithm to model capsule routing and agreement with a Gaussian distribution.
Matrix Capsules with EM Routing
We can now introduce EM Routing. The goal is to model low-level capsule votes with a multi-dimensional Gaussian. This turns out to be very similar to EM with a mixture of Gaussians.
Representations
A capsule is represented by a 4x4 pose matrix \(M\) and an activation probability \(a\). Therefore, each capsule will have dimensions (4 x 4 + 1).
We extract the first level capsules by passing the image through the CNN and then reshaping it’s features to some \(H'\) x \(W'\) x (4 x 4 + 1).
Predictions
The \(i^{th}\) low-level capsule makes predictions for the \(j^{th}\) high-level capsules with a learned 4x4 matrix \(W_{ij}\). There is a slight change in notation in the paper, so we will use the updated paper’s notation for consistency.
Where \(u_i \cdot W_{ij} = \hat{u}_{j\mid i}\) is changed to \(M_i \cdot W_{ij} = V_{ij}\) in the paper. \(V_{ij}\) is the \(i^{th}\) low-level capsule’s ‘vote’ for the \(j^{th}\) high-level capsule. As well, the routing weights \(c_{i \mid j}\) are now referred to as \(R_{ij}\).
Routing
The main difference in this algorithm is how routing is conducted.
For the \(j^{th}\) high-level capsule we have \(I\) low-level capsule predictions (\(V_{1j}, V_{2j}, ..., V_{Ij}\)).
We refer to the capsules in the \(L^{th}\) layer as \(\Omega_L\)
The low-level capsules are the known capsules (usually \(\Omega_L\)) and the high-level capsules, are the capsules we are computing (usually \(\Omega_{L+1}\)).
First, we initialize the low-level capsules routing weights uniformly across the high-level capsules
\[\forall i \in \Omega_L, j \in \Omega_{L+1}: R_{ij} \leftarrow \dfrac{1}{\mid \Omega_{L+1} \mid} \tag{20}\]We then iterate between a \(M\)-step for each high-level capsule and an \(E\)-step for each low-level capsule.
\[\underline{Iteration Start}\\ \\[5mm] \forall j \in \Omega_{L+1}: \text{M-STEP}(\textbf{a}, R, V, j)\]The \(M\) step is as follows,
-
Since we only care about the votes for existing parts and active capsules, we re-weight the routing weights by each low-level capsule’s presence probability.
\[\forall i \in \Omega_L: R_{ij} \leftarrow R_{ij} * a_i \tag{21}\] -
We then use EM to solve for the approximate optimal parameters for the Gaussian over the low-level capsule votes.
Note: Since the votes \(V_{ij}\) are multidimensional, we have to compute parameters for each dimension \(h\).
\[\forall h: \mu^h_j \leftarrow \dfrac{\sum_i R_{ij} V_{ij}^h}{\sum_i R_{ij}} \tag{22}\\ \\[0.4cm] \forall h: (\sigma_j^h)^2 \leftarrow \dfrac{\sum_i R_{ij} (V_{ij}^h - \mu_j^h)^2}{\sum_i R_{ij}}\] -
We now focus on how to compute the high-level capsule’s presence probability \(a_j\). Following the intuition of, if there is agreement between votes then the high-level capsule should be present. We can compute the ‘agreement’ by how well the Gaussian fits the weighted votes using its probability density function (PDF).
Computing the pdf \(P_{i \mid j}^h\) of the \(i^{th}\) low-level capsule’s vote under the \(j^{th}\) high-level capsule’s Gaussian’s \(h^{th}\) component is as follows,
\[P_{i \mid j}^h = \dfrac{1}{\sqrt{2\pi(\sigma_j^h)^2}} \exp(-\dfrac{(V_{ij}^h - \mu_j^h)^2}{2(\sigma_j^h)^2}) \tag{23} \\ \\[0.4cm] \ln(P_{i \mid j}^h) = -\dfrac{(V_{ij}^h - \mu_j^h)^2}{2(\sigma_j^h)^2} - \ln(\sigma_j^h) - \ln(2\pi)/2\]Taking into account the routing weights, the total \(Agreement\) on the \(h^{th}\) component of the \(j^{th}\) high-level capsule is as follows,
\[{Agreement}_j^h = \sum_i R_{ij} \ln(P_{i \mid j}^h) \tag{24}\]We want to maximize agreement. In the paper, instead of agreement they refer to the cost (negative agreement). Minimizing the cost is the same as maximizing the agreement. We can simplify the cost equation of a high-level capsule is as follows,
\[\begin{aligned} {cost}_j^h &= \sum_i -R_{ij} \ln(P_{i \mid j}^h) \\ &= \dfrac{\sum_i R_{ij} (V_{ij}^h - \mu_j^h)^2}{2(\sigma_j^h)^2} + (\ln(\sigma_j^h) + \dfrac{\ln{(2\pi)}}{2})\sum_i R_{ij} \\\tag{25} \\[0.1mm] &= \dfrac{\sum_i R_{ij} (V_{ij}^h - \mu_j^h)^2}{2(\dfrac{\sum_i R_{ij} (V_{ij}^h - \mu_j^h)^2}{\sum_i R_{ij}})} + (\ln(\sigma_j^h) + \dfrac{\ln{(2\pi)}}{2})\sum_i R_{ij} \quad \text{[By definition of } (\sigma_j^h)^2 \text{]}\\ \\[0.1mm] &= \dfrac{1}{2} \sum_i R_{ij} + (\ln(\sigma_j^h) + \dfrac{\ln{(2\pi)}}{2})\sum_i R_{ij} \\ &= (\ln(\sigma_j^h) + \dfrac{1}{2} + \dfrac{\ln{(2\pi)}}{2})\sum_i R_{ij} \end{aligned}\]This equation ends up being the standard deviation weighted by the total amount of information flowing into the capsule. We thus want to find tight agreement in the votes to minimize the standard deviation, \(\sigma_j^h\) resulting in low cost. We compute the cost as follows,
\[cost^h \leftarrow (\beta_u + \log(\sigma_j^h)) \sum_i R_{ij} \tag{26}\]Note: \(\beta_u\) is a learned parameter. This offers the model more flexibility instead of directly using the other constant terms (\(\dfrac{1}{2} + \dfrac{\ln{(2\pi)}}{2}\)) in the derived equation.
Since we either activate the capsule or don’t, we need to define the minimum value of agreement required to activate. Another way of saying this is, we need a maximum value of cost so that exceeding this cost, we don’t activate the capsule. We do so with the following formula,
\[a_j \leftarrow logistic(\lambda(\beta_a - \sum_h cost^h)) \tag{27}\]This equation means that the cost of an activated capsule must be less than \(\beta_a\), where \(\beta_a\) is a learned parameter.
Since when we begin training our predictions will be very random, we use \(\lambda\) (an inverse temperature parameter) as a way to be less strict to capsule activations to allow gradients to flow. We increase the strictness throughout the training process as our predictions become more accurate.
The logistic function either activates the capsule or not depending on if its value is larger than some threshold.
And that is the \(M\) step in full detail. We compute the approximate optimal parameters of the Gaussian over the low-level capsule votes and evaluate the standard deviation of the Gaussian to decide whether or not to activate the high-level capsule.
Next, we cover the simpler \(E\)-step. This step updates the weights \(R_{ij}\) by how well they agree with the high-level Gaussian.
The \(E\)-step is as follows,
\[\forall i \in \Omega_L: \text{E-STEP}(\mu, \sigma, \textbf{a}, V, i)\]-
We first compute how well the votes agree under the high-level capsule.
\[\forall j \in \Omega_{L+1}: p_j \leftarrow \dfrac{1}{\sqrt{\prod_h 2\pi(\sigma_j^h)^2}} \exp(- \sum_h \dfrac{(V_{ij}^h - \mu_j^h)^2}{2(\sigma_j^h)^2}) \tag{28}\] -
We then compute the routing weights as \(a_jp_j\) and normalize so all routing weights from a single low-level capsule sum to one.
\[\forall j \in \Omega_{L+1}: R_{ij} \leftarrow \dfrac{a_jp_j}{\sum_{k \in \Omega_{L+1}} a_kp_k}\tag{29}\]
Notice how computing \(R_{ij}\) is the same as computing the responsibilities \(r_k^{(i)}\). We first compute \(p(x \mid z)\) as \(p_j\) and \(p(z)\) as \(a_j\) and then normalize to satisfy bayes rule. We only modify how we compute \(a_j\).
\[\underline{Iteration End}\]At the end of the iterations, we use \(a_j\) as the presence probability and \(\mathbf{\mu_j}\) as the pose for the high-level capsule.
And that’s Matrix Capsules with EM Routing’s algorithm! Taken from the paper, the algorithm is below.
Recap
We covered EM with a mixture of Gaussian and understood how to achieve routing with such an algorithm by fitting a gaussian to the votes.
We first covered the \(M\) step where we solve for the approximate optimal parameters of a Gaussian under the low-level capsules votes and decide whether to activate the high-level capsule depending on if there is enough agreement between the votes. We then covered the E-step, where we recompute the routing weights depending on how well the vote falls under the high-level Gaussian.
The Future of Capsule Networks
Why have they not been able to achieve state of the art?
Unfortunately, the current hardware is not optimized to run these kinds of algorithms at scale (Barham & Isard, 2019).
Conclusion
We first covered the viewpoint problem which hinders computer vision model generalization. We then investigated how CNNs and Capsule Networks approach the viewpoint variance problem. Lastly, we covered the general intuition of Capsule Networks and two different routing algorithms.
Thanks for reading!
Let me know what you think about the post below!
If you want more content? Follow me on Twitter!
References
- LeCun, Y., Boser, B. E., Denker, J. S., Henderson, D., Howard, R. E., Hubbard, W. E., & Jackel, L. D. (1990). Handwritten Digit Recognition with a Back-Propagation Network. In D. S. Touretzky (Ed.), Advances in Neural Information Processing Systems 2 (pp. 396–404). Morgan-Kaufmann. http://papers.nips.cc/paper/293-handwritten-digit-recognition-with-a-back-propagation-network.pdf
- Hinton, G. E., Krizhevsky, A., & Wang, S. D. (2011). Transforming Auto-Encoders.
- Sabour, S., Frosst, N., & Hinton, G. E. (2017). Dynamic Routing Between Capsules.
- Hinton, G. E., Sabour, S., & Frosst, N. (2018). Matrix Capsules With EM Routing.
- Zeiler, M. D., & Fergus, R. (2013). Visualizing and Understanding Convolutional Networks.
- Riesenhuber, M., & Poggio, T. (1999). Hierarchical models of object recognition in cortex.
- Barham, P., & Isard, M. (2019). Machine Learning Systems are Stuck in a Rut.
More Resources
-
Dynamic Routing Capsule Network Video Tutorial: https://www.youtube.com/watch?v=pPN8d0E3900
-
Geoffrey Hinton Capsule Network Talk (2019): https://www.youtube.com/watch?v=x5Vxk9twXlE
-
EM Routing Blog Post with TF Code: https://jhui.github.io/2017/11/14/Matrix-Capsules-with-EM-routing-Capsule-Network/
-
Gaussian Mixture Models in PyTorch Blog Post: https://angusturner.github.io/generative_models/2017/11/03/pytorch-gaussian-mixture-model.html


Welcome to Heart Rate Monitor’s documentation!¶
Steven Hua
<EMAIL_ADDRESS>Indices and tables¶
Execution module¶
I/O module¶
-
Is_Number.
is_number
(n)[source]¶ Synopsis: Judge if an input is a number Parameters: n – Input data Returns: True if the input is a number instinctively and False otherwise
-
readCSV.
read_csv
(path)[source]¶ Synopsis: Read input from files Parameters: path – The path of the input file Returns: The data (including time and ecg) in the file Raise: Data should be stored as two columns: time, ecg


Python Tkinter CanvasThe canvas widget is used to add the structured graphics to the python application. It is used to draw the graph and plots to the python application. The syntax to use the canvas is given below. SyntaxA list of possible options is given below.
ExampleOutput: Example: Creating an arcOutput:
Next TopicPython Tkinter Checkbutton
|
Python Tkinter CanvasThe canvas widget is used to add the structured graphics to the python application. It is used to draw the graph and plots to the python application. The syntax to use the canvas is given below. SyntaxA list of possible options is given below.
ExampleOutput: Example: Creating an arcOutput:
Next TopicPython Tkinter Checkbutton
|
Python Tkinter CanvasThe canvas widget is used to add the structured graphics to the python application. It is used to draw the graph and plots to the python application. The syntax to use the canvas is given below. SyntaxA list of possible options is given below.
ExampleOutput: Example: Creating an arcOutput:
Next TopicPython Tkinter Checkbutton
|
Python Tkinter CanvasThe canvas widget is used to add the structured graphics to the python application. It is used to draw the graph and plots to the python application. The syntax to use the canvas is given below. SyntaxA list of possible options is given below.
ExampleOutput: Example: Creating an arcOutput:
Next TopicPython Tkinter Checkbutton
|


Hofland Christmas Prebook 2015 is now digital!
Get your free online copy here. Placing your prebook order before May 31st, 2015 will help ensure availability on your must have items. Quantities are limited.
To request a hard copy please give us a call at<PHONE_NUMBER>0


You can view this because you are authenticated. If are not authenticated, this view should never render.


 The injured were rushed to the trauma centre at P.B.M. Government Hospital in Bikaner.
Both the vehicles caught fire after the accident. The bus overturned and its front portion was mangled, in which several passengers were trapped. Rescuers faced difficulty in extricating the passengers, though the local residents and policemen doused the fire by fetching water from the nearby villages.
The bus was on its way from Bikaner to Jaipur and the mishap occurred outside Lakhasar village. Police said the early morning fog and over-speeding could be the possible causes for the accident.


Music
☰
×
Home
Music
Contact
New Releases
Privacy Policy
T & C
Themes
Sweet Celebration
Earn It
Freezing Fireside
Elegance
Particle
Tears In Silence
A Walk In A Dream
Simplicity Blends
Siberian Shadow
Shades Of Love
Loaded Gifts
Smooth And Cold
Wonders Of Winter
Wonders Of Winter
Nature Of Love
Night In Venice
Zion And Beauty
Perspective Thrill
Ancient Relaxing Music
ℜ
©Dr Rahul Vaghela Music ™
℗Rahul Shailesh Vaghela


(using servicename
)
GET FROM KEYCHAIN
Key to Get
GET
SET TO KEYCHAIN
Key to Set
Value to Set
SET
REMOVE FROM KEYCHAIN
Key to Remove
DEL